perm filename DDTIME.FAI[SS,SYS] blob
sn#421982 filedate 1979-02-20 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 A B C D P LPDL PDL DDTIME LOOP DECOUT NOSYML FIXNDD D.CURSOR D.LEXFR D.PPXFR D.POG D.WHOWRT D.ERASE D.WSE D.PPSTAR NDDTYP DDNBR DDTOT DDMAX DDREST DDNAME
C00006 ENDMK
C⊗;
;A B C D P LPDL PDL DDTIME LOOP DECOUT NOSYML FIXNDD D.CURSOR D.LEXFR D.PPXFR D.POG D.WHOWRT D.ERASE D.WSE D.PPSTAR NDDTYP DDNBR DDTOT DDMAX DDREST DDNAME
TITLE DDTIME
A←1
B←2
C←3
D←4
P←17
LPDL←←40
PDL: BLOCK LPDL
DDTIME: RESET
MOVE P,[IOWD LPDL,PDL]
MOVSI A,377777
SETPR2 A,
JRST [ OUTSTR [ASCIZ/SETPR2 failed!./]
EXIT]
MOVEI A,[RADIX50 0,DDNBR↔0]
.SYML A,
JRST NOSYML
TRO A,400000
MOVEM A,PDDNBR#
MOVEI A,[RADIX50 0,DDTOT↔0]
.SYML A,
JRST NOSYML
TRO A,400000
MOVEM A,PDDTOT#
MOVEI A,[RADIX50 0,DDMAX↔0]
.SYML A,
JRST NOSYML
TRO A,400000
MOVEM A,PDDMAX#
MOVEI A,[RADIX50 0,DDREST↔0]
.SYML A,
JRST NOSYML
TRO A,400000
MOVEM A,PDDRES#
MOVEI A,[RADIX50 0,NDDTYP↔0]
.SYML A,
JRST NOSYML
MOVEM A,PNDDTY#
CAILE A,NDDTYP
JRST FIXNDD ;SYSTEM PARAMETER TOO BIG, MUST RECOMPILE DDTIME
HRLZ A,PDDNBR
HRRI A,DDNBR
MOVE B,PNDDTY
ADDI B,-1(A)
BLT A,(B) ;COPY SYSTEM DATA TO OUR CORE IMAGE
HRLZ A,PDDTOT
HRRI A,DDTOT
MOVE B,PNDDTY
ADDI B,-1(A)
BLT A,(B) ;COPY SYSTEM DATA TO OUR CORE IMAGE
HRLZ A,PDDMAX
HRRI A,DDMAX
MOVE B,PNDDTY
ADDI B,-1(A)
BLT A,(B) ;COPY SYSTEM DATA TO OUR CORE IMAGE
HRLZ A,PDDRES
HRRI A,DDREST
MOVE B,PNDDTY
ADDI B,-1(A)
BLT A,(B) ;COPY SYSTEM DATA TO OUR CORE IMAGE
OUTSTR [ASCIZ / Avg Max Avg
Number Type delay delay remainder
/]
MOVN D,PNDDTY
HRLZ D,D
LOOP: MOVE A,DDNBR(D)
PUSHJ P,DECOUT
OUTCHR [11]
OUTSTR @DDNAME(D)
OUTCHR [11]
MOVE A,DDTOT(D)
IDIV A,DDNBR(D)
PUSHJ P,DECOUT
OUTCHR [11]
MOVE A,DDMAX(D)
PUSHJ P,DECOUT
OUTCHR [11]
MOVE A,DDREST(D)
IDIV A,DDNBR(D)
PUSHJ P,DECOUT
OUTSTR [ASCIZ/
/]
AOBJN D,LOOP
EXIT
DECOUT: IDIVI A,=10
HRLM B,(P)
JUMPE A,.+2
PUSHJ P,DECOUT
HLRZ A,(P)
ADDI A,"0"
OUTCHR A
POPJ P,
NOSYML: OUTSTR [ASCIZ /.SYML failed to find symbol values./]
EXIT
FIXNDD: OUTSTR [ASCIZ/NDDTYP is too small in DDTIME; recompile DDTIME and try again./]
EXIT
D.CURSOR←←0
D.LEXFR←←1
D.PPXFR←←2
D.POG←←3
D.WHOWRT←←4
D.ERASE←←5
D.WSE←←6
D.PPSTAR←←7
NDDTYP←←10 ;Total number of task types
DDNBR: BLOCK NDDTYP ;NUMBER OF TASKS STARTED, PER TYPE
DDTOT: BLOCK NDDTYP ;TOTAL TICKS BEFORE TASK STARTED, PER TYPE
DDMAX: BLOCK NDDTYP ;MAXIMUM TICKS BEFORE GIVEN TASK STARTED, PER TYPE
DDREST: BLOCK NDDTYP ;TOTAL UNUSED TICKS FOR ALL TASKS, PER TYPE
DDNAME: [ASCIZ/CURSOR/]
[ASCIZ/LEXFR/]
[ASCIZ/PPXFR/]
[ASCIZ/POG/]
[ASCIZ/WHOWRT/]
[ASCIZ/ERASE/]
[ASCIZ/WSE/]
[ASCIZ/PPSTAR/]
END DDTIME